/*
 * keymap.h
 *
 *  Created on: Jul 24, 2022
 *      Author: gewenbin
 */

#ifndef SRC_BACKEND_SYLIXOSINPUT_KEYMAP_H_
#define SRC_BACKEND_SYLIXOSINPUT_KEYMAP_H_

#include "evdev-scancodes.h"

static const unsigned int asciikeytbl[] = { // Keyboard mapping table
                        // Dec |  Hex | SylixOS key
    0,                  //   0   0x00
    0,                  //   1   0x01
    0,                  //   2   0x02
    0,                  //   3   0x03
    0,                  //   4   0x04
    0,                  //   5   0x05
    0,                  //   6   0x06
    0,                  //   7   0x07
    KEY_BACKSPACE,      //   8   0x08   BackSpace key
    KEY_TAB,            //   9   0x09   Tab key
    0,                  //  10   0x0A
    0,                  //  11   0x0B
    0,                  //  12   0x0C
    KEY_ENTER,          //  13   0x0D   Enter key
    0,                  //  14   0x0E
    0,                  //  15   0x0F
    0,                  //  16   0x10
    0,                  //  17   0x11
    0,                  //  18   0x12
    0,                  //  19   0x13
    0,                  //  20   0x14
    0,                  //  21   0x15
    0,                  //  22   0x16
    0,                  //  23   0x17
    0,                  //  24   0x18
    0,                  //  25   0x19
    0,                  //  26   0x1A
    KEY_ESC,            //  27   0x1B
    0,                  //  28   0x1C
    0,                  //  29   0x1D
    0,                  //  30   0x1E
    0,                  //  31   0x1F
    KEY_SPACE,          //  32   0x20
    0,                  //  33   0x21
    0,                  //  34   0x22
    0,                  //  35   0x23
    0,                  //  36   0x24
    0,                  //  37   0x25
    0,                  //  38   0x26
    KEY_APOSTROPHE,     //  39   0x27   '
    0,                  //  40   0x28
    0,                  //  41   0x29
    0,                  //  42   0x2A
    0,                  //  43   0x2B
    KEY_COMMA,          //  44   0x2C   ,
    KEY_MINUS,          //  45   0x2D   -
    KEY_DOT,            //  46   0x2E   .
    KEY_SLASH,          //  47   0x2F   /
    KEY_0,              //  48   0x30   0
    KEY_1,              //  49   0x31   1
    KEY_2,              //  50   0x32   2
    KEY_3,              //  51   0x33   3
    KEY_4,              //  52   0x34   4
    KEY_5,              //  53   0x35   5
    KEY_6,              //  54   0x36   6
    KEY_7,              //  55   0x37   7
    KEY_8,              //  56   0x38   8
    KEY_9,              //  57   0x39   9
    0,                  //  58   0x3A
    KEY_SEMICOLON,      //  59   0x3B   ;
    KEY_GRAVE,          //  60   0x3C   `
    KEY_EQUAL,          //  61   0x3D   =
    0,                  //  62   0x3E
    0,                  //  63   0x3F
    0,                  //  64   0x40
    0,                  //  65   0x41
    0,                  //  66   0x42
    0,                  //  67   0x43
    0,                  //  68   0x44
    0,                  //  69   0x45
    0,                  //  70   0x46
    0,                  //  71   0x47
    0,                  //  72   0x48
    0,                  //  73   0x49
    0,                  //  74   0x4A
    0,                  //  75   0x4B
    0,                  //  76   0x4C
    0,                  //  77   0x4D
    0,                  //  78   0x4E
    0,                  //  79   0x4F
    0,                  //  80   0x50
    0,                  //  81   0x51
    0,                  //  82   0x52
    0,                  //  83   0x53
    0,                  //  84   0x54
    0,                  //  85   0x55
    0,                  //  86   0x56
    0,                  //  87   0x57
    0,                  //  88   0x58
    0,                  //  89   0x59
    0,                  //  90   0x5A
    KEY_LEFTBRACE,      //  91   0x5B   [
    KEY_BACKSLASH,      //  92   0x5C   '\'
    KEY_RIGHTBRACE,     //  93   0x5D   ]
    0,                  //  94   0x5E
    0,                  //  95   0x5F
    0,                  //  96   0x60
    KEY_A,              //  97   0x61   a
    KEY_B,              //  98   0x62   b
    KEY_C,              //  99   0x63   c
    KEY_D,              // 100   0x64   d
    KEY_E,              // 101   0x65   e
    KEY_F,              // 102   0x66   f
    KEY_G,              // 103   0x67   g
    KEY_H,              // 104   0x68   h
    KEY_I,              // 105   0x69   i
    KEY_J,              // 106   0x6A   j
    KEY_K,              // 107   0x6B   k
    KEY_L,              // 108   0x6C   l
    KEY_M,              // 109   0x6D   m
    KEY_N,              // 110   0x6E   n
    KEY_O,              // 111   0x6F   o
    KEY_P,              // 112   0x70   p
    KEY_Q,              // 113   0x71   q
    KEY_R,              // 114   0x72   r
    KEY_S,              // 115   0x73   s
    KEY_T,              // 116   0x74   t
    KEY_U,              // 117   0x75   u
    KEY_V,              // 118   0x76   v
    KEY_W,              // 119   0x77   w
    KEY_X,              // 120   0x78   x
    KEY_Y,              // 121   0x79   y
    KEY_Z,              // 122   0x7A   z
    0,                  // 123   0x7B
    0,                  // 124   0x7C
    0,                  // 125   0x7D
    0,                  // 126   0x7E
    0,                  // 127   0x7F
    0,                  // 128   0x80
    0,                  // 129   0x81
    0,                  // 130   0x82
    0,                  // 131   0x83
    0,                  // 132   0x84
    0,                  // 133   0x85
    0,                  // 134   0x86
    0,                  // 135   0x87
    0,                  // 136   0x88
    0,                  // 137   0x89
    0,                  // 138   0x8A
    0,                  // 139   0x8B
    0,                  // 140   0x8C
    0,                  // 141   0x8D
    0,                  // 142   0x8E
    0,                  // 143   0x8F
    0,                  // 144   0x90
    0,                  // 145   0x91
    0,                  // 146   0x92
    0,                  // 147   0x93
    0,                  // 148   0x94
    0,                  // 149   0x95
    0,                  // 150   0x96
    0,                  // 151   0x97
    0,                  // 152   0x98
    0,                  // 153   0x99
    0,                  // 154   0x9A
    0,                  // 155   0x9B
    0,                  // 156   0x9C
    0,                  // 157   0x9D
    0,                  // 158   0x9E
    0,                  // 159   0x9F
    0,                  // 160   0xA0
    0,                  // 161   0xA1
    0,                  // 162   0xA2
    0,                  // 163   0xA3
    0,                  // 164   0xA4
    0,                  // 165   0xA5
    0,                  // 166   0xA6
    0,                  // 167   0xA7
    0,                  // 168   0xA8
    0,                  // 169   0xA9
    0,                  // 170   0xAA
    0,                  // 171   0xAB
    0,                  // 172   0xAC
    0,                  // 173   0xAD
    0,                  // 174   0xAE
    0,                  // 175   0xAF
    0,                  // 176   0xB0
    0,                  // 177   0xB1
    0,                  // 178   0xB2
    0,                  // 179   0xB3
    0,                  // 180   0xB4
    0,                  // 181   0xB5
    0,                  // 182   0xB6
    0,                  // 183   0xB7
    0,                  // 184   0xB8
    0,                  // 185   0xB9
    0,                  // 186   0xBA
    0,                  // 187   0xBB
    0,                  // 188   0xBC
    0,                  // 189   0xBD
    0,                  // 190   0xBE
    0,                  // 191   0xBF
    0,                  // 192   0xC0
    0,                  // 193   0xC1
    0,                  // 194   0xC2
    0,                  // 195   0xC3
    0,                  // 196   0xC4
    0,                  // 197   0xC5
    0,                  // 198   0xC6
    0,                  // 199   0xC7
    0,                  // 200   0xC8
    0,                  // 201   0xC9
    0,                  // 202   0xCA
    0,                  // 203   0xCB
    0,                  // 204   0xCC
    0,                  // 205   0xCD
    0,                  // 206   0xCE
    0,                  // 207   0xCF
    0,                  // 208   0xD0
    0,                  // 209   0xD1
    0,                  // 210   0xD2
    0,                  // 211   0xD3
    0,                  // 212   0xD4
    0,                  // 213   0xD5
    0,                  // 214   0xD6
    0,                  // 215   0xD7
    0,                  // 216   0xD8
    0,                  // 217   0xD9
    0,                  // 218   0xDA
    0,                  // 219   0xDB
    0,                  // 220   0xDC
    0,                  // 221   0xDD
    0,                  // 222   0xDE
    0,                  // 223   0xDF
    0,                  // 224   0xE0
    0,                  // 225   0xE1
    0,                  // 226   0xE2
    0,                  // 227   0xE3
    0,                  // 228   0xE4
    0,                  // 229   0xE5
    KEY_KP0,            // 230   0xE6   Numeric keypad 0
    KEY_KP1,            // 231   0xE7   Numeric keypad 1
    KEY_KP2,            // 232   0xE8   Numeric keypad 2
    KEY_KP3,            // 233   0xE9   Numeric keypad 3
    KEY_KP4,            // 234   0xEA   Numeric keypad 4
    KEY_KP5,            // 235   0xEB   Numeric keypad 5
    KEY_KP6,            // 236   0xEC   Numeric keypad 6
    KEY_KP7,            // 237   0xED   Numeric keypad 7
    KEY_KP8,            // 238   0xEE   Numeric keypad 8
    KEY_KP9,            // 239   0xEF   Numeric keypad 9
    KEY_KPDOT,          // 240   0xF0   Numeric keypad .
    KEY_KPSLASH,        // 241   0xF1   Numeric keypad /
    KEY_KPASTERISK,     // 242   0xF2   Numeric keypad *
    KEY_KPMINUS,        // 243   0xF3   Numeric keypad -
    KEY_KPPLUS,         // 244   0xF4   Numeric keypad +
    KEY_KPENTER,        // 245   0xF5   Numeric keypad Enter
    0,                  // 246   0xF6
    0,                  // 247   0xF7
    0,                  // 248   0xF8
    0,                  // 249   0xF9
    0,                  // 250   0xFA
    0,                  // 251   0xFB
    0,                  // 252   0xFC
    0,                  // 253   0xFD
    0,                  // 254   0xFE
    0
};

#endif /* SRC_BACKEND_SYLIXOSINPUT_KEYMAP_H_ */
